[dbo].[USP_ORD_SettleConfirmByReName_Q_DOUZONE].sql 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. /*
  2. ----------------------------------------------------------------------------------
  3. ◑ SP Name : dbo.USP_ORD_SettleConfirmByReName_Q_DOUZONE 0, '2018-01-01', '2018-01-31', '정산완료', ''
  4. ◑ Description : 공급사별 정산예정목록을 조회한다.
  5. ◑ Called by :
  6. ◑ Input Parameters :
  7. ◑ Output Parameters :
  8. ◑ Exec :
  9. ◑ Change History
  10. ----------------------------------------------------------------------------------
  11. Date Author Description
  12. ----------------------------------------------------------------------------------
  13. 2018-03-06 성근영 최초 생성
  14. 2019-06-11 이선미 정산액 수정 및튜닝 (임시테이블 제거, 그룹바이 중복 제거)
  15. 2019-07-02 이선미 정산액 마이너스 금액도 포함
  16. ----------------------------------------------------------------------------------
  17. */
  18. CREATE PROCEDURE [dbo].[USP_ORD_SettleConfirmByReName_Q_DOUZONE]
  19. @ProviderNo INT,
  20. @DateFrom DATETIME,
  21. @DateTo DATETIME,
  22. @SettleStatusCd NVARCHAR(20),
  23. @SettleDate CHAR(10)
  24. AS
  25. BEGIN
  26. SET NOCOUNT ON;
  27. DECLARE @StrDateFrom Nvarchar(10), @StrDateTo Nvarchar(10)
  28. SET @StrDateFrom = Convert(Nvarchar(10), @DateFrom, 121)
  29. SET @StrDateTo = Convert(Nvarchar(10), DateAdd(day, 1, @DateTo), 121)
  30. ;WITH CTE_Settle(BizNumber,settleDate, CouponPrice, CouponAllotment, OrderSettleAmount, MarginSettleAmount, Amount)
  31. AS(
  32. SELECT V.BizNumber
  33. , V.SettleDate
  34. , SUM(V.CouponPrice) AS CouponPrice
  35. , SUM(V.CouponAllotment) AS CouponAllotment
  36. , SUM(V.OrderSettleAmount) AS OrderSettleAmount
  37. , SUM(V.MarginSettleAmount) AS MarginSettleAmount
  38. , SUM(V.OrderSettleAmount + V.CouponPrice - V.MarginSettleAmount-V.CouponAllotment) As Amount
  39. --, CAST(ROUND(SUM(V.MarginSettleAmount / 1.1),4) AS float) As SupAmount
  40. --, CAST(ROUND(SUM(V.MarginSettleAmount) - SUM(V.MarginSettleAmount / 1.1),4) AS float) As Tax
  41. FROM
  42. ( SELECT VD.BizNumber
  43. , V.SettleDate
  44. , V.SettleStatusCd
  45. , V.VendorNo
  46. , V.CouponPrice
  47. , V.CouponAllotment
  48. , V.OrderSettleAmount
  49. ,V.MarginSettleAmount
  50. FROM dbo.VW_ORD_Settlement AS V WITH (NOLOCK)
  51. INNER JOIN dbo.TB_VEN_Provider AS P WITH (NOLOCK) ON V.ProviderNo = P.ProviderNo
  52. INNER JOIN dbo.TB_VEN_Vendor AS VD WITH (NOLOCK) ON P.VendorNo = VD.VendorNo
  53. WHERE V.DateSales >= @StrDateFrom AND V.DateSales < @StrDateTo
  54. AND CASE WHEN @SettleStatusCd = '' THEN '' ELSE SettleStatusCd END = @SettleStatusCd
  55. AND CASE WHEN @SettleDate = '' THEN '' ELSE SettleDate END = @SettleDate
  56. ) V
  57. GROUP BY V.VendorNo, V.BizNumber, V.SettleDate, V.SettleStatusCd
  58. )
  59. --더존계산식
  60. SELECT BizNumber, SettleDate
  61. , CAST(ROUND((OrderSettleAmount) * -1 ,0) AS numeric(19, 4)) AS '상품매출액'
  62. , CAST(ROUND(MarginSettleAmount -( CouponPrice- CouponAllotment), 0) - ROUND((MarginSettleAmount -( CouponPrice- CouponAllotment)) / 1.1, 0) AS numeric(19,4)) AS '예수부가세'
  63. , CAST(ROUND(((MarginSettleAmount -( CouponPrice- CouponAllotment)) / 1.1), 0) AS numeric(19, 4)) AS '수수료매출'
  64. , CAST((Amount) AS numeric(19, 4)) AS '미지급금'
  65. FROM CTE_Settle;
  66. --WHERE OrderSettleAmount > 0
  67. /*
  68. DECLARE @TargetListTable Table (
  69. StrDateFrom Nvarchar(10)
  70. , StrDateTo Nvarchar(10)
  71. , BizNumber Nvarchar(50)
  72. , SettleDate Nvarchar(10)
  73. , SettleStatusCd Nvarchar(20)
  74. , CouponPrice Money
  75. , CouponAllotment Money
  76. , OrderSettleAmount Money
  77. , MarginSettleAmount Money
  78. , Amount Money
  79. , SupAmount Money
  80. , Tax Money
  81. )
  82. INSERT INTO @TargetListTable
  83. SELECT @StrDateFrom, @StrDateTo, V.BizNumber, V.SettleDate, V.SettleStatusCd
  84. , SUM(V.CouponPrice) AS CouponPrice
  85. , SUM(V.CouponAllotment) AS CouponAllotment
  86. , SUM(V.OrderSettleAmount) AS OrderSettleAmount
  87. , SUM(V.MarginSettleAmount) AS MarginSettleAmount
  88. , SUM(V.OrderSettleAmount + V.CouponPrice - V.MarginSettleAmount) As Amount
  89. , SUM(V.MarginSettleAmount / 1.1) As SupAmount
  90. , SUM(V.MarginSettleAmount) - SUM(V.MarginSettleAmount / 1.1) As Tax
  91. FROM
  92. (
  93. SELECT V.VendorNo, V.VendorName, V.ProviderNo, V.ProviderName, V.DeliveryUnitNo, V.DeliveryUnitName, VD.Representative, VD.BizNumber, P.BankAccountInfo, V.SettleDate, V.SettleStatusCd
  94. , SUM(V.CouponPrice) AS CouponPrice, SUM(V.CouponAllotment) AS CouponAllotment, SUM(V.OrderSettleAmount) AS OrderSettleAmount
  95. , ROUND(SUM(V.MarginSettleAmount),0) AS MarginSettleAmount
  96. , SUM((V.OrderSettleAmount+V.CouponPrice) - V.MarginSettleAmount) As Amount
  97. , ROUND(ROUND(SUM(V.MarginSettleAmount),0) / 1.1, 0) As SupAmount
  98. , ROUND(SUM(V.CouponPrice+V.OrderSettleAmount),0) as StandardTotalPrice
  99. , ROUND(SUM(V.MarginSettleAmount),0) - ROUND(ROUND(SUM(V.MarginSettleAmount),0) / 1.1, 0) As Tax
  100. , SUM(V.OrderSurTax) AS OrderSurTax, ROUND(SUM(V.MarginSurTax),0) AS MarginSurTax
  101. FROM dbo.VW_ORD_Settlement AS V WITH (NOLOCK)
  102. INNER JOIN dbo.TB_VEN_Provider AS P WITH (NOLOCK) ON V.ProviderNo = P.ProviderNo
  103. INNER JOIN dbo.TB_VEN_Vendor AS VD WITH (NOLOCK) ON P.VendorNo = VD.VendorNo
  104. WHERE V.DateSales >= @StrDateFrom AND V.DateSales < @StrDateTo
  105. GROUP BY V.VendorNo, V.VendorName, V.ProviderNo, V.ProviderName, V.DeliveryUnitNo, V.DeliveryUnitName, VD.Representative, VD.BizNumber, P.BankAccountInfo, V.SettleDate, V.SettleStatusCd
  106. ) V
  107. --FROM dbo.VW_ORD_Settlement AS V WITH (NOLOCK)
  108. -- INNER JOIN dbo.TB_VEN_Vendor AS VD WITH (NOLOCK) ON V.VendorNo = VD.VendorNo
  109. --WHERE V.DateSales >= @StrDateFrom
  110. --AND V.DateSales < @StrDateTo
  111. GROUP BY V.VendorNo, V.BizNumber, V.SettleDate, V.SettleStatusCd
  112. If @SettleStatusCd <> ''
  113. DELETE FROM @TargetListTable WHERE SettleStatusCd <> @SettleStatusCd
  114. If @SettleDate <> ''
  115. DELETE FROM @TargetListTable WHERE SettleDate <> @SettleDate
  116. SELECT BizNumber, SettleDate, CouponPrice, CouponAllotment, OrderSettleAmount
  117. , MarginSettleAmount, Amount, SupAmount, Tax
  118. FROM @TargetListTable
  119. */
  120. SET NOCOUNT OFF;
  121. END